The present invention relates generally to distributed multimedia servers. More particularly, the invention relates to a scalable media server architecture that can be scaled up to support more users as demand grows. The architecture is balanced to avoid bottlenecks while supporting heavy loads.
The term "global village" describes how today's technology has made it possible to send information instantly from one point on the globe to another. The information infrastructure that makes this possible is currently being built. It is anticipated that someday multimedia material of every description will be delivered anywhere on the globe upon demand.
The foregoing vision implies exponential growth. If the past growth in internet usage is any indicator, we can expect exponential growth in the multimedia server infrastructure as digital multimedia delivery replaces the current analog delivery and as the global village becomes a reality.
Scalability is very important if we are to meet this exponentially growing demand. A system is scalable if it supports more streams when extra hardware is added. In this context, a stream may comprise video content, audio content, data representing other types of information, or a combination of these. Thus a scalable server is one that can be upgraded with additional hardware to support additional streams as more users are added. Linear scale-up is achieved when doubling the hardware capacity enables the server to support the twice the number of streams.
Developing a scalable distributed media server presents several problems that must be solved. Bandwidth bottlenecks are a frequent source of problems. System cost is a competing factor. Increasing component bandwidth by using more expensive components may not be economically practical.
User considerations present further problems in achieving a scalable design. Not all multimedia content is created equal. Some movies, for example, are very popular and are frequently requested throughout the day, with peak demand occurring at certain prime times. Other movies are requested less often, but they still need to be made available for selection by the occasional user. As the popularity of media selections will change over time, the scalable architecture must be similarly flexible in this regard. The problem is compounded further because new media selections are continually being added.
The present invention provides a scalable, distributed media server architecture that addresses the above concerns through a modular approach. Individual server elements, each having a plurality of network interface circuits and a plurality of media storage devices form the information storage component of the architecture. A plurality of switching elements are connected to the server elements in interleaved fashion to define a distributed network.
A single server element can be used to supply media to a small number of users. However, the architecture is readily scaled to accommodate larger numbers of users by simply adding more server elements and associated switching elements. The interleaved connections between server elements and switching elements support a balanced distributed server system.
To further balance the system and avoid bottlenecks, a data structure associated with the media storage devices organizes the devices into stripe groups. The stripe groups are arranged so a given media selection is assigned to one stripe group and is thereby stored, in distributed fashion, across the collection of server elements. Heavily demanded selections are stored as multiple copies, where each copy is assigned to a different stripe group. The result is a highly balanced, scalable media server system that takes full advantage of the available bandwidth of its constituent components.